package com.mrd.gtimpframe.base;

/**
 * 基本接口类，泛型
 * 
 * @author han
 * @param <T>
 */
public interface BaseMapper<T> {

  /**
   * 根据主键删除数据
   * 
   * @author han
   * @param id
   * @return
   */
  int deleteByPrimaryKey(Object id);

  /**
   * 插入所有字段数据
   * 
   * @author han
   * @param record
   * @return
   */
  int insert(T record);

  /**
   * 插入非空字段的数据
   * 
   * @author han
   * @param record
   * @return
   */
  int insertSelective(T record);

  /**
   * 根据主键查询
   * 
   * @author han
   * @param id
   * @return
   */
  T selectByPrimaryKey(Object id);

  /**
   * 只更新非空字段
   * 
   * @author han
   * @param record
   * @return
   */
  int updateByPrimaryKeySelective(T record);

  /**
   * 全部更新
   * 
   * @author han
   * @param record
   * @return
   */
  int updateByPrimaryKey(T record);

  /**
   * 批量删除
   * 
   * @author han
   * @param id
   * @return
   */
  int deleteBatch(Object[] id);
}
